package com.myown.jdk.proxy;

/**
 * 静态代理 <p>
 *
 * 我们通过实现目标类的接口，实现接口方法的时候，在调用目标对象方法前后，
 * 进行了我们添加的操作，优点是没有改变原代码的结构，缺点是对于每个方法，
 * 我们都必须手动去实现。 <p>
 *
 * @author lincky
 * @version v1.0.0
 * @time 2017.03.20 15:51
 */
public class StaticFoodFactory implements FoodInterface{

    private FoodImpl food;

    public StaticFoodFactory(FoodImpl food) {
        this.food = food;
    }

    @Override
    public void makeHMJ(String chick) {
        System.out.println("makeHMJ调用前");
        food.makeHMJ(chick);
        System.out.println("makeHMJ调用后");
    }

    @Override
    public void makeCQXM(String noodle) {
        System.out.println("makeCQXM调用前");
        food.makeHMJ(noodle);
        System.out.println("makeCQXM调用后");
    }

    public static void main(String[] args) {
        StaticFoodFactory staticFoodFactory = new StaticFoodFactory(new FoodImpl());
        staticFoodFactory.makeHMJ("中国黄焖鸡");
    }

}
